package ooday04;

import ooday03.InterfaceDemo;

/** 匿名内部类的演示 */
public class AnonInnerClassDemo {
    public static void main(String[] args) {
        //1)创建了Inter的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o1，向上造型为Inter类型
        //  ----new Inter(){};是在创建Inter的派生类的对象
        Inter o1 = new Inter(){};

        //1)创建了Inter的一个派生类，但是没有名字
        //2)为该派生类创建了一个对象，名为o2，向上造型为Inter类型
        int num = 5;
        num = 6;
        //1)创建了InterInter的一个派生类，但是没有名字
        //2）为该派生类创建了一个对象，名为o3，向上造型为InterInter类型
        //3)大括号中的为派生类的类体
        InterInter o2 = new InterInter() {
            public void show() {
                System.out.println("showshow");
                //num = 6;  //编译错误，匿名内部类中不能改变外面局部变量的值
                            //因为该变量在此处会默认为final的
            }
        };
        o2.show();
    }
}
interface Inter{
}
interface InterInter{
    void show();
}